package com.sh.rpc.model;

import cn.hutool.core.util.StrUtil;
import lombok.Data;

// 服务元信息
@Data
public class ServiceMetaInfo {

    /**
     * 服务名称
     */
    private String serviceName;

    /**
     * 服务版本号
     */
    private String serviceVersion = "1.0";

    /**
     * 服务域名
     */
    private String serviceHost;
    /**
     * 服务端口号
     */
    private Integer servicePort;

    /**
     * 服务分组
     */
    private String serviceGroup = "default";


    /**
     * 获取服务键名
     */
    public String getServiceKey() {
        // String.format("%s:%s:%s", serviceName, serviceVersion, serviceGroup);
        String temp = String.format("%s:%s", serviceName, serviceVersion);
        return temp;
    }

    /**
     * 获取服务注册节点键名
     */
    public String getServiceNodeKey(){
        return String.format("%s/%s:%s", getServiceKey(), serviceHost, servicePort);
    }

    /**
     * 获取完整地址
     * 判断 serviceHost 所代表的字符串中是否包含 "http" 这个字符串
     */
    public String getServiceAddress() {
        if ( !StrUtil.contains(serviceHost, "http")){
            String temp = String.format("http://%s:%s", serviceHost, servicePort);
            return temp;
        }
        String temp = String.format("%s:%s", serviceHost, servicePort);
        return temp;
    }


}
